A good answer might be:

No. You only write the catch{} blocks for the exceptions you wish to handle. The other exceptions are passed up to the caller.

User-friendly Code

Exception handling is important for user-friendly programs. Here is the compute-the-square program again, this time written so that the user is prompted again if the input is bad:

import java.lang.* ;
import java.io.* ;

public class SquareUser 
{

  public static void main ( String[] a ) throws IOException
  {
    BufferedReader stdin = 
        new BufferedReader ( new InputStreamReader( System.in ) );
 
    String  inData = null;
    int     num = 0;
    boolean goodData = false;

    while ( !goodData )
    {
      System.out.println("Enter an integer:");
      inData = stdin.readLine();

      try
      {
        num      = Integer.parseInt( inData );
        goodData = true;
      }

      catch (NumberFormatException ex )
      {
        System.out.println("You entered bad data." );
        System.out.println("Please try again.\n" );
      }

    }

    System.out.println("The square of " + inData + " is " + num*num );

  }
}

This is a common style of reading user input. It would be uncommonly useful to copy, save, and run this program.

QUESTION 8:

Could the following statements be moved into the try{} block?

System.out.println("Enter an integer:");
inData = stdin.readLine();